#!/bin/sh -e

cd `dirname $0`

#unset _JAVA_OPTIONS
if [ "x$JAVA_HOME" = "x" ]; then
    JAVA_HOME=`java -XshowSettings:properties -version 2>&1 | \
               awk 'BEGIN { FS="=\\\s*" } /java\.home/ { print $2 }'`
fi

if [ ! -f ../libblst.a -o ../blst.h -nt ../libblst.a ]; then
    (cd ..; ../build.sh)
fi

if [ ! -f blst_wrap.cpp -o ../blst.swg -nt blst_wrap.cpp \
                        -o ../blst.hpp -nt blst_wrap.cpp \
                        -o ../blst.h   -nt blst_wrap.cpp ]; then
    (set -x; swig -c++ -java -outdir . -o blst_wrap.cpp ../blst.swg)
fi

if [ ! -f libblst.so -o blst_wrap.cpp -nt libblst.so \
                     -o ../libblst.a  -nt libblst.so ]; then
    (set -x; c++ -shared -o libblst.so -fPIC \
                 -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux -I.. \
                 -O -Wall -Wno-unused-function blst_wrap.cpp \
                 ../libblst.a -Wl,-Bsymbolic)
fi

if [ ! -f blst.class -o blst.java     -nt blst.class \
                     -o runnable.java -nt runnable.class ]; then
    (set -x; javac *.java)
fi

env LD_LIBRARY_PATH=. java runnable
